package com.bestcem.xm.member.service;

import com.bestcem.xm.common.core.domain.web.ServiceResult;
import com.bestcem.xm.member.grpc.service.param.displayrange.CreateDisplayRangeParam;
import com.bestcem.xm.member.grpc.service.param.displayrange.GetDisplayRangeParam;
import com.bestcem.xm.member.grpc.service.param.displayrange.UpdateDisplayRangeParam;
import com.bestcem.xm.member.service.dto.DisplayRangeDto;

import javax.validation.constraints.NotNull;

/**
 * @author dc.wang <dc.wang@idiaoyan.com>
 * @version V1.0
 * @description 展示范围service接口
 * @date 2021/7/19
 */
public interface DisplayRangeService {
    /**
     * 查询联系人展示范围信息
     *
     * @param getParam 查询联系人展示范围请求参数
     * @return 展示范围信息
     * @author dc.wang <dc.wang@idiaoyan.com>
     * @date 2021/7/19
     */
    @NotNull
    ServiceResult<DisplayRangeDto> getDisplayRange(@NotNull GetDisplayRangeParam getParam);

    /**
     * 创建展示范围
     *
     * @param createParam 创建展示范围参数
     * @return 展示范围标识
     * @author dc.wang <dc.wang@idiaoyan.com>
     * @date 2021/7/19
     */
    @NotNull
    ServiceResult<DisplayRangeDto> createDisplayRange(@NotNull CreateDisplayRangeParam createParam);

    /**
     * 更新展示范围
     *
     * @param updateParam 更新展示范围参数
     * @return 展示范围标识
     * @author dc.wang <dc.wang@idiaoyan.com>
     * @date 2021/7/19
     */
    @NotNull
    ServiceResult<DisplayRangeDto> updateDisplayRange(@NotNull UpdateDisplayRangeParam updateParam);

    /**
     * 判断是否展示手机号邮箱
     *
     * @param orgId
     * @param memberType
     * @param userId
     * @return
     */
     Boolean isDisplayContact(String orgId, Integer memberType, String userId);
}
